package com.tuanzi.loan.workflow.service;

import org.springframework.data.domain.Page;

import com.tuanzi.loan.core.vo.PageSearcher;
import com.tuanzi.loan.workflow.vo.ProcessDefinitionResponse;
import com.tuanzi.loan.workflow.vo.TaskSearchRequest;
import com.tuanzi.loan.workflow.vo.TaskSearchResponse;

/**
 * @author Ray
 * @date 2018/01/16
 */
public interface WorkflowTaskService {

	/**
	 * 获取个人待办任务
	 * 
	 * @param pageSearcher
	 * @return
	 */
	Page<TaskSearchResponse> listTodoTask(PageSearcher<TaskSearchRequest> pageSearcher);

	/**
	 * 获取本部门的待办任务
	 * 
	 * @param pageSearcher
	 * @return
	 */
	Page<TaskSearchResponse> listDeptTodoTask(PageSearcher<TaskSearchRequest> pageSearcher);

	/**
	 * 获取个人已办任务
	 * 
	 * @param pageSearcher
	 * @return
	 */
	Page<TaskSearchResponse> listDoneTask(PageSearcher<TaskSearchRequest> pageSearcher);

	/**
	 * 获取个人可启动任务
	 *
	 * @param pageSearcher
	 * @return
	 */
	Page<ProcessDefinitionResponse> listStartableTask(PageSearcher<TaskSearchRequest> pageSearcher);

	/**
	 * 获取我的代办任务数量
	 * 
	 * @param account
	 *            用户名
	 * @return 待办任务数
	 */
	Long countUnreadTodoTaskCount(String account);
}
